home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / u_man / cat1 / yacc.z / yacc
Text File  |  1998-10-20  |  9KB  |  133 lines

  1.  
  2.  
  3.  
  4. yyyyaaaacccccccc((((1111))))                                                                yyyyaaaacccccccc((((1111))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _yyyy_aaaa_cccc_cccc - yet another compiler-compiler
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _yyyy_aaaa_cccc_cccc [_----_vvvv_VVVV_dddd_llll_tttt] [_----_QQQQ[_yyyy|_nnnn]] [_----_pppp sym_prefix] [_----_bbbb file_prefix]
  13.      [_----_PPPP parser] file
  14.  
  15. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  16.      The _yyyy_aaaa_cccc_cccc command converts a context-free grammar into a set of tables for
  17.      a simple automaton that executes an LALR(1) parsing algorithm.  The
  18.      grammar may be ambiguous; specified precedence rules are used to break
  19.      ambiguities.  _yyyy_aaaa_cccc_cccc processes supplementary code set characters in program
  20.      comments and strings, and single-byte supplementary code set characters
  21.      in tokens, according to the locale specified in the _LLLL_CCCC______CCCC_TTTT_YYYY_PPPP_EEEE environment
  22.      variable [see _LLLL_AAAA_NNNN_GGGG on _eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn(5)].
  23.  
  24.      The output file, _yyyy_...._tttt_aaaa_bbbb_...._cccc, must be compiled by the C compiler to produce a
  25.      program _yyyy_yyyy_pppp_aaaa_rrrr_ssss_eeee.  This program must be loaded with the lexical analyzer
  26.      program, _yyyy_yyyy_llll_eeee_xxxx, as well as _mmmm_aaaa_iiii_nnnn and _yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr, an error handling routine.
  27.      These routines may be supplied by the user; the _llll_eeee_xxxx(1) command is useful
  28.      for creating lexical analyzers usable by _yyyy_aaaa_cccc_cccc.  A simple _mmmm_aaaa_iiii_nnnn and _yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr
  29.      are available in _llll_iiii_bbbb_yyyy.  The _yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr routine in _llll_iiii_bbbb_yyyy_...._aaaa has the following
  30.      signature:  _iiii_nnnn_tttt _yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr_((((_cccc_oooo_nnnn_ssss_tttt _cccc_hhhh_aaaa_rrrr _****_)))).  If a user wishes to have a
  31.      _yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr with a different signature, they must define the symbol
  32.      ___________mmmm_yyyy______yyyy_yyyy_eeee_rrrr_rrrr_oooo_rrrr at the top of their _...._yyyy file.
  33.  
  34.      _----_vvvv        Prepares the file _yyyy_...._oooo_uuuu_tttt_pppp_uuuu_tttt, which contains a description of the
  35.                parsing tables and a report on conflicts generated by
  36.                ambiguities in the grammar.
  37.  
  38.      _----_bbbb _ffff_iiii_llll_eeee______pppp_rrrr_eeee_ffff_iiii_xxxx
  39.                Use _f_i_l_e__p_r_e_f_i_x instead of _yyyy as the prefix for all output
  40.                filenames.
  41.  
  42.      _----_pppp _ssss_yyyy_mmmm______pppp_rrrr_eeee_ffff_iiii_xxxx
  43.                Use _s_y_m__p_r_e_f_i_x instead of _yyyy_yyyy as the prefix for all external
  44.                names produced by _yyyy_aaaa_cccc_cccc.  For _XXXX_////_OOOO_pppp_eeee_nnnn compliance, when the
  45.                environment variable ______XXXX_PPPP_GGGG is set, then the _----_pppp option will work
  46.                as descibed in the previous sentence.  If the environment
  47.                variable ______XXXX_PPPP_GGGG is not set, then the _----_pppp option will work as
  48.                described below in the _----_PPPP option.
  49.  
  50.      _----_PPPP _ffff_iiii_llll_eeee   Location of the common parser; the code contained here is
  51.                emitted verbatim by _yyyy_aaaa_cccc_cccc in the generated code. This provides
  52.                compatibility with the old _----_pppp _ffff_llll_aaaa_gggg in AT&T _yyyy_aaaa_cccc_cccc.
  53.  
  54.      _----_dddd        Generates the file _yyyy_...._tttt_aaaa_bbbb_...._hhhh with the _####_dddd_eeee_ffff_iiii_nnnn_eeee statements that
  55.                associate the _yyyy_aaaa_cccc_cccc-assigned ``token codes'' with the user-
  56.                declared ``token names.''  This association allows source files
  57.                other than _yyyy_...._tttt_aaaa_bbbb_...._cccc to access the token codes.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. yyyyaaaacccccccc((((1111))))                                                                yyyyaaaacccccccc((((1111))))
  71.  
  72.  
  73.  
  74.      _----_llll        Specifies that the code produced in _yyyy_...._tttt_aaaa_bbbb_...._cccc will not contain
  75.                any _####_llll_iiii_nnnn_eeee constructs.  This option should only be used after
  76.                the grammar and the associated actions are fully debugged.
  77.  
  78.      _----_QQQQ[_yyyy|_nnnn]   The _----_QQQQ_yyyy option puts the version stamping information in
  79.                _yyyy_...._tttt_aaaa_bbbb_...._cccc.  This allows you to know what version of _yyyy_aaaa_cccc_cccc built
  80.                the file.  The _----_QQQQ_nnnn option (the default) writes no version
  81.                information.
  82.  
  83.      _----_tttt        Compiles runtime debugging code by default.  Runtime debugging
  84.                code is always generated in _yyyy_...._tttt_aaaa_bbbb_...._cccc under conditional
  85.                compilation control.  By default, this code is not included
  86.                when _yyyy_...._tttt_aaaa_bbbb_...._cccc is compiled.  Whether or not the _----_tttt option is
  87.                used, the runtime debugging code is under the control of
  88.                _YYYY_YYYY_DDDD_EEEE_BBBB_UUUU_GGGG, a preprocessor symbol.  If _YYYY_YYYY_DDDD_EEEE_BBBB_UUUU_GGGG has a non-zero
  89.                value, then the debugging code is included.  If its value is
  90.                zero, then the code will not be included.  The size and
  91.                execution time of a program produced without the runtime
  92.                debugging code will be smaller and slightly faster.
  93.  
  94.      _----_VVVV        Prints on the standard error output the version information for
  95.                _yyyy_aaaa_cccc_cccc.
  96.  
  97. FFFFIIIILLLLEEEESSSS
  98.      _yyyy_...._oooo_uuuu_tttt_pppp_uuuu_tttt
  99.      _yyyy_...._tttt_aaaa_bbbb_...._cccc
  100.      _yyyy_...._tttt_aaaa_bbbb_...._hhhh
  101.           defines for token names
  102.      _yyyy_aaaa_cccc_cccc_...._tttt_mmmm_pppp_,,,, _yyyy_aaaa_cccc_cccc_...._dddd_eeee_bbbb_uuuu_gggg, _yyyy_aaaa_cccc_cccc_...._aaaa_cccc_tttt_ssss
  103.           temporary files; these names are used only if the _TTTT_MMMM_PPPP_DDDD_IIII_RRRR environment
  104.           variable is not set.  If _TTTT_MMMM_PPPP_DDDD_IIII_RRRR is set, then these temporary files
  105.           are stored in that directory, using unique names.
  106.      _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_yyyy_aaaa_cccc_cccc_pppp_aaaa_rrrr
  107.           parser prototype for C programs
  108. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  109.      _llll_eeee_xxxx(1)
  110. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  111.      The number of reduce-reduce and shift-reduce conflicts is reported on the
  112.      standard error output; a more detailed report is found in the _yyyy_...._oooo_uuuu_tttt_pppp_uuuu_tttt
  113.      file.  Similarly, if some rules are not reachable from the start symbol,
  114.      this instance is also reported.
  115. NNNNOOOOTTTTEEEESSSS
  116.      Because file names are fixed, at most one _yyyy_aaaa_cccc_cccc process can be active in a
  117.      given directory at a given time.
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.